package net.cyndeline.GUI.setup

/**
 * This trait marks how each type of rendered element in the game is displayed. It is the top-most level of
 * representation, such as Orc, Dungeon_wall, Dungeon_wall_rotated, Player_Knight etc. Each type represents an
 * integer id used to find the factory that produces representations of the given type. This id could be referenced
 * as an Integer directly, but case objects are used to cause compile time errors if a type is removed.
 */
trait RepresentationType {
  def id: Int
}

// For testing only, delete when actual sprite sheets are in the game
case object Dungeon_wall extends RepresentationType {
  def id = 0
}

case object Dungeon_floor extends RepresentationType {
  def id = 1
}
